package com.suray.system.run;

import com.suray.rgv.fork.RgvForkApp;
import com.suray.rgv.roller.RgvRollerApp;
import com.suray.rgv.son.RgvSonApp;
import com.suray.rgv.son.mother.RgvSMApp;
import com.suray.rgv60.Rgv60App;
import com.suray.rgv60.map.SeerRgvMapApp;
import com.suray.socket.system.SocketApp;
import com.suray.system.run.impl.SystemMonitorApp;
import com.suray.system.run.seer.SeerAgvControl;
import com.suray.wcs.service.core.path.api.impl.TaskPortAssignImpl;
import com.suray.wcs.service.core.path.api.impl.TaskPortReAssignImpl;
import com.suray.wcs.service.init.SystemInit;

public class AppTask {
    public AppTask() {

    }

    /**
     * 系统层初始化
     */
    public void initSystem() {
    }

    /**
     * 通讯初始化
     */
    public void initCommunication() {
        SocketApp.init();
    }

    /**
     * 设备初始化
     */
    public void initDevice() {
        RgvSonApp.init();
        SeerRgvMapApp.init();
        RgvSMApp.init();
        RgvRollerApp.init();
        Rgv60App.init();
        RgvForkApp.init();
        SeerAgvControl.init();
    }

    /**
     * 功能初始化
     */
    public void initFunction() {
        SystemMonitorApp.init();
        // 方案初始化
        SystemInit.initProgrammeMap();
        new TaskPortAssignImpl().start();
        new TaskPortReAssignImpl().start();
    }

    /**
     * 10ms周期任务
     */
    public void task10ms() {
    }

    /**
     * 20ms周期任务
     */
    public void task20ms() {
    }

    /**
     * 50ms周期任务
     */
    public void task50ms() {
    }

    /**
     * 100ms周期任务
     */
    public void task100ms() {
    }

    /**
     * 200ms周期任务
     */
    public void task200ms() {
        RgvSMApp.run();
        RgvRollerApp.run();
        Rgv60App.run();
        RgvForkApp.run();
    }

    /**
     * 500ms周期任务
     */
    public void task500ms() {
    }

    /**
     * 1s周期任务
     */
    public void task1s() {
        SystemMonitorApp.run();
        SeerAgvControl.run();
    }

    /**
     * 2s周期任务
     */
    public void task2s() {
    }

    /**
     * 5s周期任务
     */
    public void task5s() {
    }

    /**
     * 1min周期任务
     */
    public void task1min(){
    }

    /**
     * 2min周期任务
     */
    public void task2min(){

    }

    /**
     * 5min周期任务
     */
    public void task5min(){
    }

    /**
     * 1hour周期任务
     */
    public void task1hour(){

    }

}
